package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.StrategyComment;
import cn.wolfcode.trip.base.domain.TravelContent;
import cn.wolfcode.trip.base.query.QueryObject;
import cn.wolfcode.trip.base.query.StrategyCommentQueryObject;
import com.github.pagehelper.PageInfo;

/**
 * 攻略点评接口
 */
public interface IStrategyCommentService {

    /**
     * 分页查询点评
     * @param qo
     * @return
     */
    PageInfo query(StrategyCommentQueryObject qo);

    /**
     * 根据攻略的id查询文本内容和图片
     * @param strategyCommentId
     * @return
     */
    StrategyComment getCommentContentById(Long strategyCommentId);

    /**
     * 更改点评状态
     * @param id
     * @param state
     */
    void changeStrategyCommentState(Long id, Integer state);

    /**
     * 更改已发布点评的推荐状态
     * @param id
     * @param isCommend
     */
    void changeStrategyCommentCommend(Long id, Integer isCommend);

    /**
     * 保存或修改攻略点评
     * @param entity
     * @param images
     */
    void saveOrUpdate(StrategyComment entity, String[] images);

    /**
     * 设置攻略点评的点赞数
     * @param greats
     * @param strategyCommentId
     */
    void updateGreatCount(Integer greats, Long strategyCommentId);

    /**
     * 获取指定攻略点评id的点评
     * @param id
     * @return
     */
    StrategyComment get(Long id);

    /**
     * 根据作者id查询名下所有的攻略点评
     * @param qo
     * @return
     */
    PageInfo getStrategyCommentsByAuthorId(QueryObject qo);

    /**
     * 根据中作者id查询名下攻略点评的数量
     * @param qo
     * @return
     */
    Integer getCountByAuthorId(QueryObject qo);
}
